public class Landmark 
{
	private String name;
	private boolean hasStore;
	private int riverDepthMin;
	private int riverDepthMax;
	private boolean hasFerry;
	
	/**
	 * Generic constructor for a landmark.
	 * 
	 * @param name Name of the landmark
	 * @param hasStore Boolean value of whether or not the landmark has a store
	 * @param riverDepthMin Minimum river depth at this landmark. 0 if there is no river.
	 * @param riverDepthMax Maximum river depth at this landmark. 0 if there is no river.
	 * @param hasFerry Whether or not the landmark has a ferry for the river. False if there is no river.
	 */
	public Landmark(String name, boolean hasStore, int riverDepthMin, int riverDepthMax, boolean hasFerry)
	{
		this.name = name;
		this.hasStore = hasStore;
		this.riverDepthMin = riverDepthMin;
		this.riverDepthMax = riverDepthMax;
		this.hasFerry = hasFerry;
	}

	/**
	 * Accessor for the hasStore field.
	 * @return boolean value of whether or not there is a store at this landmark
	 */
	public boolean hasStore() 
	{
		return hasStore;
	}
	
	/**
	 * Accessor for the riverDepthMin field.
	 * @return int value of the minimum river depth at this landmark
	 */
	public int getRiverDepthMin() 
	{
		return riverDepthMin;
	}

	/**
	 * Accessor for the riverDepthMax field.
	 * @return int value of the maximum river depth at this landmark
	 */
	public int getRiverDepthMax() 
	{
		return riverDepthMax;
	}
	
	/**
	 * Accessor for the hasRiver field
	 * @return boolean value of whether or not there is a river at this landmark
	 */
	public boolean hasRiver()
	{
		return (riverDepthMin > 0 && riverDepthMax > 0);
	}
	
	/**
	 * Accessor for the hasFerry field
	 * @return boolean value of whether or not there is a ferry at this landmark
	 */	
	public boolean hasFerry()
	{
		return hasFerry;
	}
}
